home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2002-10-03 | 94.8 KB | 1,980 lines
iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) NNNNAAAAMMMMEEEE iiiillllDDDDiiiissssppppllllaaaayyyy - displays multiple images in an X window IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM This is a base class with no inheritance. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE #include <il/ilCdefs.h> CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ilDisplay manages the display of multiple ilImages in an X window. An ilImage of any size, color model, or orientation can be displayed. In addition, any combination of ilImage can be displayed. OOOOppppeeeennnnGGGGLLLL is used to render the images if supported by the visual associated with the X window, otherwise X is used. Multiple images are managed as a stack and only the exposed area of each image is painted for optimal performance. AAAAddddddddiiiinnnngggg IIIImmmmaaaaggggeeeessss Any iiiillllIIIImmmmaaaaggggeeee can be added to the display by using the aaaaddddddddVVVViiiieeeewwww(((()))) member function. ilDisplay creates an iiiillllVVVViiiieeeewwww for the image and puts it into a view stack. By default, views are put on top of the stack. However, an index can be specified or the mode can be used to control where the view is inserted in the stack. Views are displayed based on their stacking order. Therefore the view on top of the stack is unobscured and other views in the stack may be obscured. Member functions are provided for manipulating the view stack such as push, pop, swap and delete. An iiiillllVVVViiiieeeewwww pointer is returned by aaaaddddddddVVVViiiieeeewwww() and can be used to manipulate the view. For example the view can be repositioned and resized. See ilView for more information. The pointer to an ilView can be found in several ways using the image or index of the view or by specifying an xy location. When finding a view by xy location, a pointer to the topmost view at that location is returned. Note that all views in the view stack are deleted when ilDisplay is deleted. DDDDiiiissssppppllllaaaayyyy OOOOppppeeeerrrraaaattttoooorrrrssss ilDisplay provides several functions or display operators to manipulate views within the display window. Display operators are used to do such things as move the view within the display, change the size of the view or moved the image within the view. These display operators can be applied to one or more views in the view stack. Typical arguments passed to a display operator include an _x_y coordinate pair, a pointer to a _v_i_e_w, and a _m_o_d_e. An _i_l_V_i_e_w* is passed to a display operator to specify which view to operate on. If NULL is specified, all views in the stack are operated on. However, a view is unaffected if its nop (no-operation) flag is set. The PPPPaaaaggggeeee 1111 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) function sssseeeettttNNNNoooopppp(((()))) can be used to set the nop flag on a single view or all views in the stack. The _m_o_d_e parameter passed to display operators is comprised of one or more bit fields. It is passed as an iiiinnnntttt value to allow the bit fields to be combined using a bitwise OR. These bit fields are defined as enumerated values in iiiillll////iiiillllDDDDiiiissssppppllllaaaayyyyDDDDeeeeffffssss....hhhh. There are several types of modes defined, including: ilDefer to defer painting, ilClip to prevent moving beyond the edge of the image, ilNoSwap to prevent swapping back/front buffers, and operator-specific flags such as ilRightEdge for the wipe operator and coordinate interpretation. The _x, _y coordinates passed to a display operator can be interpreted as absolute values, change from current view configuration, or as relative to the values initialized by sssseeeettttMMMMoooouuuusssseeee(((()))). Coordinate interpretation is specified by the following flags in _m_o_d_e: _i_l_R_e_l_V_a_l Interpreted relative to the starting _x_y position established with sssseeeettttMMMMoooouuuusssseeee(). The difference between the specified _x_y parameters and the starting _x_y location is used. The starting _x_y location is then updated. Useful for interactive manipulation. _i_l_O_l_d_R_e_l Same as _i_l_R_e_l_V_a_l except that the starting _x,_y location is not updated. This is useful when doing several operations based on the same _x,_y coordinates. _i_l_D_e_l_V_a_l Interpreted as changes (delta) to the current view configuration. _i_l_A_b_s_V_a_l Interpreted as absolute values relative to the ilDisplay origin (upper-left). CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr ilDisplay* ilDisplayCreate(Display* display, Window parentWin, int mode) ilDisplay* ilDisplayCreateWindow(Display* display, int width, int height, int attr, int minComponentSize, int maxComponentSize, int mode, long eventMask) DDDDeeeessssttttrrrruuuuccccttttoooorrrr void ilDisplayDelete(ilDisplay* obj) SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn aaaannnndddd aaaabbbboooorrrrttttiiiinnnngggg PPPPaaaaggggeeee 2222 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplaySyncPaint(ilDisplay *obj) void ilDisplayFlush(ilDisplay *obj) void ilDisplayAbort(ilDisplay *obj) void ilDisplayEnableAutoAbort(ilDisplay *obj, int enable) int ilDisplayIsAutoAbortEnabled(ilDisplay *obj) void ilDisplayEnableQueueing(ilDisplay *obj, int enable) int ilDisplayIsQueueingEnabled(ilDisplay *obj) XXXX WWWWiiiinnnnddddoooowwww aaaacccccccceeeessssssss aaaannnndddd ccccoooonnnnttttrrrroooollll void ilDisplayUpdateWindow(ilDisplay *obj) void ilDisplaySetWindow(ilDisplay *obj, Window win, int mode) ilXWindowImg* ilDisplayGetXWindowImg(ilDisplay *obj) GLXContext ilDisplayGetGLXContext(ilDisplay *obj) Window ilDisplayGetWindow(ilDisplay *obj) Display* ilDisplayGetDisplay(ilDisplay *obj) Display* ilDisplayGetILDisplay(ilDisplay *obj) void ilDisplayCalcWindowSize(ilDisplay *obj, int* width, int* height) void ilDisplayDestroyNotify(ilDisplay *obj) CCCCoooonnnnttttrrrroooolllllllliiiinnnngggg ddddiiiissssppppllllaaaayyyy mmmmooooddddeeeessss void ilDisplaySetMode(ilDisplay *obj, int mode) void ilDisplayEnableFrontRedraw(ilDisplay *obj, int enable) int ilDisplayIsFrontRedrawEnabled(ilDisplay *obj) RRRReeeennnnddddeeeerrrriiiinnnngggg ccccaaaallllllllbbbbaaaacccckkkkssss void ilDisplaySetCallback(ilDisplay *obj, ilCallback* prepare, ilCallback* render, ilCallback* finish) void ilDisplayGetCallback(ilDisplay *obj, ilCallback** prepare, ilCallback** render, ilCallback** finish) void ilDisplayEnableCallback(ilDisplay *obj, int enable) int ilDisplayIsCallbackEnabled(ilDisplay *obj) TTTTiiiilllleeee mmmmaaaappppppppiiiinnnngggg void ilDisplayMapTile(ilDisplay *obj, iflOrientation fromOrientation, iflTile2Dint* tile, iflOrientation toOrientation(0)) void ilDisplayMapTileFloat(ilDisplay *obj, iflOrientation fromOrientation, iflTile2Dfloat* tile, iflOrientation toOrientation(0)) void ilDisplayMapXY(ilDisplay *obj, iflOrientation fromOrientation, int* x, int* y, iflOrientation toOrientation(0)) void ilDisplayMapXYFloat(ilDisplay *obj, iflOrientation fromOrientation, float* x, float* y, iflOrientation toOrientation(0)) VVVViiiissssiiiibbbblllleeee aaaarrrreeeeaaaa ccccoooonnnnttttrrrroooollll void ilDisplaySetVisibleArea(ilDisplay *obj, int x, int y, int nx, int ny) void ilDisplayGetVisibleArea(ilDisplay *obj, int* x, int* y, PPPPaaaaggggeeee 3333 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) int* nx, int* ny) AAAAttttttttrrrriiiibbbbuuuutttteeee ggggeeeetttt aaaannnndddd sssseeeetttt void ilDisplayGetPos(ilDisplay *obj, int* x, int* y) void ilDisplayGetSize(ilDisplay *obj, int* x, int* y) int ilDisplayIsRgb(ilDisplay *obj) int ilDisplayIsDoubleBuffer(ilDisplay *obj) int ilDisplayIsDefer(ilDisplay *obj, ilView* view) void ilDisplaySetDefer(ilDisplay *obj, int def, ilView* view) int ilDisplayIsStereo(ilDisplay *obj) int ilDisplayGetMargin(ilDisplay *obj) void ilDisplaySetMargin(ilDisplay *obj, int margin) float ilDisplayGetRoamLimit(ilDisplay *obj) void ilDisplaySetRoamLimit(ilDisplay *obj, float maxRoamDel.0) void ilDisplayGetRoamRate(ilDisplay *obj, float* x, float* y) void ilDisplayGetBackground(ilDisplay *obj, float* red, float* green, float* blue) void ilDisplaySetBackground(ilDisplay *obj, float red, float green, float blue) iflColorModel ilDisplayGetColorModel(ilDisplay *obj) void ilDisplaySetColormap(ilDisplay *obj, iflColormap* cmap) ilStatus ilDisplayGetColormap(ilDisplay *obj, iflColormap* cmap) ilStatus ilDisplayGetStatus(ilDisplay *obj) void ilDisplaySetStatus(ilDisplay *obj, ilStatus stat) void ilDisplayBackgroundSetDirty(ilDisplay *obj) VVVViiiieeeewwww mmmmaaaannnniiiippppuuuullllaaaattttiiiioooonnnn ilView* ilDisplayAddView(ilDisplay *obj, ilImage* img, int index, int mode) ilView* ilDisplayAddViewTop(ilDisplay *obj, ilImage* img, int mode) ilStereoView* ilDisplayAddStereoView(ilDisplay *obj, ilImage* imgL, ilImage* imgR, int index, int mode) ilStereoView* ilDisplayAddStereoViewTop(ilDisplay *obj, ilImage* imgL, ilImage* imgR, int mode) ilStereoView* ilDisplayAddStereoViewZ(ilDisplay *obj, ilImage* zImg, int zLeft, int zRight, int index, int mode) ilStereoView* ilDisplayAddStereoViewZTop(ilDisplay *obj, ilImage* zImg, int zLeft, int zRight, int mode) ilView* ilDisplayAddViewPtr(ilDisplay *obj, ilView* view, int index, int mode) void ilDisplayDeleteView(ilDisplay *obj, ilView* view) PPPPaaaaggggeeee 4444 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplayDeleteViewIdx(ilDisplay *obj, int index) void ilDisplayAddViewChangeCallback(ilDisplay *obj, ilCallback* cb, int autoDelete) ilStatus ilDisplayRemoveViewChangeCallback(ilDisplay *obj, ilCallback* cb) void ilDisplayPush(ilDisplay *obj, ilView* view, int count) void ilDisplayPop(ilDisplay *obj, ilView* view, int count) void ilDisplaySwap(ilDisplay *obj, ilView* view1, ilView* view2) ilView* ilDisplayFindView(ilDisplay *obj, int x, int y, int mode) ilView* ilDisplayGetViewIdx(ilDisplay *obj, int index) ilView* ilDisplayGetViewImg(ilDisplay *obj, ilImage* img) int ilDisplayGetViewIndex(ilDisplay *obj, ilView* view) int ilDisplayGetViewIndexImg(ilDisplay *obj, ilImage* img) int ilDisplayGetNumViews(ilDisplay *obj) ilView* ilDisplayGetLoc(ilDisplay *obj, float x, float y, float* ix, float* iy, int mode) ilView* ilDisplaySetLoc(ilDisplay *obj, float ix, float iy, float x, float y, int mode) ilView* ilDisplayGetPixel(ilDisplay *obj, int x, int y, iflPixel* pix) ilView* ilDisplaySetPixel(ilDisplay *obj, int x, int y, iflPixel* pix) int ilDisplayIsNop(ilDisplay *obj, ilView* view) void ilDisplaySetNop(ilDisplay *obj, int noOp, ilView* view) void ilDisplaySelect(ilDisplay *obj, ilView* view) void ilDisplayUnselect(ilDisplay *obj, ilView* view) int ilDisplayIsSelected(ilDisplay *obj, ilView* view) void ilDisplaySetBorders(ilDisplay *obj, int enable, int mode) void ilDisplaySetBorderStyle(ilDisplay *obj, int style) void ilDisplaySetBorderColor(ilDisplay *obj, float red, float green, float blue) void ilDisplaySetBorderWidth(ilDisplay *obj, int width) DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrr ssssuuuuppppppppoooorrrrtttt void ilDisplaySetMouse(ilDisplay *obj, int x, int y, int mode) void ilDisplayGetMouse(ilDisplay *obj, int* x, int* y) void ilDisplayGetMouseOrientation(ilDisplay *obj, int* x, int* y, iflOrientation orientation) int ilDisplayFindEdge(ilDisplay *obj, int x, int y, int margin-1, int mode) DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrrssss void ilDisplayDisplay(ilDisplay *obj, ilView* view, int vMode, int iMode) void ilDisplayRedrawArea(ilDisplay *obj, int x, int y, int nx, int ny, iflOrientation orientation, int mode) void ilDisplayRedraw(ilDisplay *obj, int mode) void ilDisplayPaintArea(ilDisplay *obj, int x, int y, PPPPaaaaggggeeee 5555 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) int nx, int ny, iflOrientation orientation, ilView* view, int mode) void ilDisplayPaint(ilDisplay *obj, ilView* view, int mode) void ilDisplayQPaintArea(ilDisplay *obj, ilMpNode* parent, int x, int y, int nx, int ny, iflOrientation orientation, ilView* view, int mode, ilMpManager** pMgr) void ilDisplayQPaint(ilDisplay *obj, ilMpNode* parent, ilView* view, int mode, ilMpManager** pMgr) void ilDisplayMoveView(ilDisplay *obj, int x, int y, ilView* view, int mode) void ilDisplayMoveImg(ilDisplay *obj, float x, float y, ilView* view, int mode) void ilDisplayMoveImgIdx(ilDisplay *obj, float x, float y, ilView* view, int idx, int mode) void ilDisplayWipe(ilDisplay *obj, int x, int y, ilView* view, int mode) void ilDisplayWipeSplit(ilDisplay *obj, int x, int y, int mode) void ilDisplayWipeSize(ilDisplay *obj, int x, int y, ilView* view, int mode) void ilDisplaySplit(ilDisplay *obj, int mode) void ilDisplayAlignImg(ilDisplay *obj, ilView* view, int mode) void ilDisplayAlignView(ilDisplay *obj, ilView* view, int mode, ilView* rView) void ilDisplayUpdate(ilDisplay *obj, int x, int y, int nx, int ny, float imgX, float imgY, ilView* view, int mode) ilStatus ilDisplaySave(ilDisplay *obj, ilImage* img, int x, int y, int mode) FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS iiiillllDDDDiiiissssppppllllaaaayyyy(((()))) ilDisplay* ilDisplayCreate(Display* display, Window parentWin, int mode) ilDisplay* ilDisplayCreateWindow(Display* display, int width, int height, int attr, int minComponentSize, int maxComponentSize, int mode, long eventMask) Both versions of the constructor create an ilDisplay object to manage views of images within an X window. The _m_o_d_e parameter is used to specify the view mode when adding ilViews objects with aaaaddddddddVVVViiiieeeewwww(). For example, iiiillllDDDDeeeeffffeeeerrrr could be used to add views without painting each one as it is added to the display. PPPPaaaaggggeeee 6666 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) Since OpenGL and X rendering can be mixed, the render mode is determined automatically. If the X visual associated with the window supports OpenGL rendering then OpenGL rendering will be used. Otherwise X rendering will be used. Note that hardware acceleration only occurs during OpenGL rendering. The second version of the constructor creates an X window as specified by the various parameters. The created window will be _w_i_d_t_h wide, _h_e_i_g_h_t high with the attributes specified by _a_t_t_r, _m_i_n_C_o_m_p_o_n_e_n_t_S_i_z_e and _m_a_x_C_o_m_p_o_n_e_n_t_S_i_z_e for the visual class. See iiiillllXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg for more information. In addition, it will select the X events passed in _e_v_e_n_t_M_a_s_k. A background view is created and is painted by default. However, if ilDefer is passed in _m_o_d_e, painting will be deferred. Also, an RGB colormap will be loaded if needed. However, an application can load a colormap or use the default colormap by passing ilDefaultCmap in _m_o_d_e. This will cause ilDisplay to not load a colormap. iiiillllDDDDiiiissssppppllllaaaayyyyDDDDeeeelllleeeetttteeee(((()))) void ilDisplayDelete(ilDisplay* obj) Removes and deletes all of the allocated pointers and items used by the ilDisplay. Also deletes all view in the view stack. aaaabbbboooorrrrtttt(((()))) void ilDisplayAbort(ilDisplay *obj) This method aborts any queued paint requests. It works in conjunction with the eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg() method. aaaaddddddddSSSStttteeeerrrreeeeooooVVVViiiieeeewwww(((()))) ilStereoView* ilDisplayAddStereoView(ilDisplay *obj, ilImage* imgL, ilImage* imgR, int index, int mode) ilStereoView* ilDisplayAddStereoViewTop(ilDisplay *obj, ilImage* imgL, ilImage* imgR, int mode) ilStereoView* ilDisplayAddStereoViewZTop(ilDisplay *obj, ilImage* zImg, int zLeft, int zRight, int mode) ilStereoView* ilDisplayAddStereoViewZ(ilDisplay *obj, ilImage* zImg, int zLeft, int zRight, PPPPaaaaggggeeee 7777 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) int index, int mode) These methods allow a pair of ilImages to be specified as the left image and the right image of a stereo pair. In addition, a stereo pair may be stored in a single image using the Z dimension. In this case, the image is specified as _z_I_m_g. The Z index to the left image is specified as _z_L_e_f_t and the Z index to the right image is specified as _z_R_i_g_h_t. By default, zLeft is 0 and zRight is 1. The advantage of this approach, is that a single IL chain can be used to process the stereo pair, rather than having a chain to process each image. aaaaddddddddVVVViiiieeeewwww(((()))) ilView* ilDisplayAddView(ilDisplay *obj, ilImage* img, int index, int mode) ilView* ilDisplayAddViewTop(ilDisplay *obj, ilImage* img, int mode) ilView* ilDisplayAddViewPtr(ilDisplay *obj, ilView* view, int index, int mode) Creates an ilView for the image specified by, _i_m_g, and adds it to the view stack at the index specified by, _i_d_x. By default, the view is added to the top of the stack. If _i_d_x equals _i_l_L_a_s_t, the view is added to the bottom of the stack. The mode parameter controls the creation and position of the ilView. By default, the ilView is the size of the image. However, if _i_l_C_l_i_p is passed in _m_o_d_e, then the ilView will be clipped to the size of the display window. By default, the view is painted after it is added to the stack. However, if _i_l_D_e_f_e_r is passed, then painting is deferred. Also, an alignment mode such as _i_l_C_e_n_t_e_r may be passed to control how the image is aligned within the view and how the view is aligned within the display window. Center alignment is used by default. Several versions of aaaaddddddddVVVViiiieeeewwww() are provided for convenience. The version that takes an index, allows the position in the view stack to be specified. Often however, putting the image on top of the stack is acceptable and only the image and mode need to be specified. Therefore, a second version is provided that only requires an image and a mode to be specified. Since this version puts the view on top of the view stack, its name ends with "Top". PPPPaaaaggggeeee 8888 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((()))) void ilDisplayAddViewChangeCallback(ilDisplay *obj, ilCallback* cb, int autoDelete) This method adds a callback that will be triggered whenever a view is added to or deleted from this object. Either ilViewChangeMethodCB or ilViewChangeFunctionCB can used with this method. The callback method or function will have the prototype: func(UserArgType userArg, ilViewChangeArg* callerArg) To define and use a view change callback to a member function you might do something like: ... ilStatus Bar::change(Foo*, ilViewChangeArg*) { ... } ... typedef ilViewChangeMethodCB<Bar,Foo*> ViewChangeCallback; Bar bar; Foo foo; ViewChangeCallback changeCb(&bar, Bar::change, &foo); disp->addViewChangeCallback(&changeCb); The passed ilViewChangeArg contains two members: _r_e_a_s_o_n The reason for this callback: either _i_l_V_i_e_w_A_d_d_e_d or _i_l_V_i_e_w_D_e_l_e_t_e_d. _v_i_e_w The view being added or the view about to be deleted. aaaalllliiiiggggnnnnIIIImmmmgggg(((()))) void ilDisplayAlignImg(ilDisplay *obj, ilView* view, int mode) Aligns the image in the specified view based on _m_o_d_e. If NULL is passed, then the image in all views in the view stack are aligned (expect those with nop flag set). For example, if ilCenter is specified, the images are centered within the view. Similarly, if ilBottomLeft is specified, the lower left corner of the image is aligned to the lower left corner of the view. See _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h for a complete list of modes. PPPPaaaaggggeeee 9999 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) aaaalllliiiiggggnnnnVVVViiiieeeewwww(((()))) void ilDisplayAlignView(ilDisplay *obj, ilView* view, int mode, ilView* rView) Aligns the specified view to the reference view specified in _r_V_i_e_w. If NULL is passed then all views are aligned (except those with nop flag set). The two views are aligned based on bit flags passed in _m_o_d_e. For example, it ilCenter is specified, the center of the view is aligned to the center of the reference view. Similarly, if ilTopRight is specified, the upper right corner of the view is aligned to the upper right corner of the reference view. If NULL is passed in rView, the background view in ilDisplay is used. See _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h for a complete list of modes. ccccaaaallllccccWWWWiiiinnnnddddoooowwwwSSSSiiiizzzzeeee(((()))) void ilDisplayCalcWindowSize(ilDisplay *obj, int* width, int* height) This method computes a window size that won't clip any of the images in the current set of views, this size is clipped to the size of the screen. ddddeeeelllleeeetttteeeeVVVViiiieeeewwww(((()))) void ilDisplayDeleteView(ilDisplay *obj, ilView* view) void ilDisplayDeleteViewIdx(ilDisplay *obj, int index) Removes the specified view from the view stack and deletes the ilView. The display is then repainted. ddddeeeessssttttrrrrooooyyyyNNNNoooottttiiiiffffyyyy(((()))) void ilDisplayDestroyNotify(ilDisplay *obj) This method is intended to be called when the X window used by this object has been destroyed, typically when a DestroyNotify X event is handled. ddddiiiissssppppllllaaaayyyy(((()))) void ilDisplayDisplay(ilDisplay *obj, ilView* view, int vMode, int iMode) PPPPaaaaggggeeee 11110000 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) This function resizes, aligns, and paints the specified view. If NULL is passed, then all views are operated on (except those with nop flag set). If ilDefer is specified, then painting is deferred. The view is resized to the size of the image. However, if ilClip is specified, the view is clipped to the size of the display. The view is aligned as specified in _v_M_o_d_e, and the image mapped to the view is aligned as specified in _i_M_o_d_e. eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt(((()))) void ilDisplayEnableAutoAbort(ilDisplay *obj, int enable) This method enables automatic aborting of queued requests; when this mode is turned on any new painting operations will automatically cancel paint operations in progress. This mode only makes sense if queueing is enabled (see eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg()). eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk(((()))) void ilDisplayEnableCallback(ilDisplay *obj, int enable) This member function enables (_T_r_u_e) or disables (_F_a_l_s_e) the post- render callback setup with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). Note that the callback must be set and enabled to be operable. eeeennnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww(((()))) void ilDisplayEnableFrontRedraw(ilDisplay *obj, int enable) This member function enables or disables drawing to the front buffer when iiiillllDDDDiiiissssppppllllaaaayyyyRRRReeeeddddrrrraaaawwww() is called. This allows better visual feedback when in double buffer mode. If _T_r_u_e is passed then front redraw is enabled. Otherwise, it is disabled. eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg(((()))) void ilDisplayEnableQueueing(ilDisplay *obj, int enable) This method controls whether queued painting is actually allowed, the default mode is that queued painting will not be done. When the mode is enabled, call to various display operation (like mmmmoooovvvveeeeIIIImmmmgggg()) will return before the rendering is completed. When another operations is requested it will be started before waiting for the last operation to complete to allow overlapped prefetching of data. This mode is currently only supported on MP machines. PPPPaaaaggggeeee 11111111 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) Completion of the queued operation can be ensured by calling the ssssyyyynnnnccccPPPPaaaaiiiinnnntttt() method. Queued operations can be aborted with the aaaabbbboooorrrrtttt() method. ffffiiiinnnnddddEEEEddddggggeeee(((()))) int ilDisplayFindEdge(ilDisplay *obj, int x, int y, int margin-1, int mode) Returns the edge or edges within _m_a_r_g_i_n pixels of _x and _y. The view stack is searched from top to bottom so that edges of the top view are returned. However, ilNoEdge is returned if no edge is found and ilNoView is returned if there is no view at the location specified by _x and _y. ffffiiiinnnnddddVVVViiiieeeewwww(((()))) ilView* ilDisplayFindView(ilDisplay *obj, int x, int y, int mode) Returns a pointer to the top-most ilView found at location (_x,_y) within the display. If there is no view at (x,y), NULL is returned. If ilDspCoord is passed in mode (default), then the (x,y) coordinates are interpreted relative to the display window. If ilScrCoord is passed in mode, then the (x,y) coordinates are interpreted relative to the screen. fffflllluuuusssshhhh(((()))) void ilDisplayFlush(ilDisplay *obj) Flushes graphics commands that may be buffered. Usually, it is not necessary to call flush in interactive applications. ggggeeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((()))) void ilDisplayGetBackground(ilDisplay *obj, float* red, float* green, float* blue) Returns the current background color in _r_e_d, _g_r_e_e_n and _b_l_u_e. See ilDisplaySetBackground() ggggeeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((()))) void ilDisplayGetCallback(ilDisplay *obj, ilCallback** prepare, ilCallback** render, ilCallback** finish) PPPPaaaaggggeeee 11112222 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) Returns pointers to the _p_r_e_p_a_r_e callback, _r_e_n_d_e_r callback and _f_i_n_i_s_h callback in the repective parameters. These callbacks were previousely set with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). See iiiillllVVVViiiieeeewwww and iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk for more information. ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) iflColorModel ilDisplayGetColorModel(ilDisplay *obj) Returns the color model of the display image. ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) ilStatus ilDisplayGetColormap(ilDisplay *obj, iflColormap* cmap) Returns the current colormap in _l_u_t. The colormap is used by iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg, depending on the render mode. ggggeeeettttDDDDiiiissssppppllllaaaayyyy(((()))) Display* ilDisplayGetDisplay(ilDisplay *obj) Returns the X Display currently being used. ggggeeeettttGGGGLLLLXXXXCCCCoooonnnntttteeeexxxxtttt(((()))) GLXContext ilDisplayGetGLXContext(ilDisplay *obj) This method returns the OpenGL rendering context used by IL. This can be used to create display lists in a user context that can be shared with the IL context, and thus used in the rendering callbacks. To do this the user context must be created specifying the IL context as the _s_h_a_r_e_L_i_s_t parameter of ggggllllXXXXCCCCrrrreeeeaaaatttteeeeCCCCoooonnnntttteeeexxxxtttt(). ggggeeeettttIIIILLLLDDDDiiiissssppppllllaaaayyyy(((()))) Display* ilDisplayGetILDisplay(ilDisplay *obj) This method returns the internal Display* that IL uses. This is not intended for use outside of IL. ggggeeeettttLLLLoooocccc(((()))) ilView* ilDisplayGetLoc(ilDisplay *obj, float x, float y, float* ix, float* iy, int mode) PPPPaaaaggggeeee 11113333 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) This function finds the view at (_x, _y) and returns the corresponding location in the image in _i_x and _i_y. If _i_l_L_o_c_I_n is passed in _m_o_d_e, the location is returned in the input space of the image. If _i_l_L_o_c_O_u_t is passed in _m_o_d_e, the location is returned in the output space of the image. For example, if an ilRotZoomIng is mapped to the view and _i_l_L_o_c_I_n is specified, _i_x and _i_y will correspond to the location in the unzoomed image. However, if _i_l_L_o_c_O_u_t is specified, _i_x and _i_y correspond to the location in the zoomed image. ggggeeeettttMMMMaaaarrrrggggiiiinnnn(((()))) int ilDisplayGetMargin(ilDisplay *obj) Returns the current margin in pixels that is used for ffffiiiinnnnddddEEEEddddggggeeee(). ggggeeeettttMMMMoooouuuusssseeee(((()))) void ilDisplayGetMouse(ilDisplay *obj, int* x, int* y) void ilDisplayGetMouseOrientation(ilDisplay *obj, int* x, int* y, iflOrientation orientation) Returns the current XY location of the mouse. The mouse position is set with sssseeeettttMMMMoooouuuusssseeee(((()))) and is updated by display operators that are passed _i_l_R_e_l_V_a_l parameter mode. The values _x and _y, are returned for the specified orientation. The first version, uses the current _e_v_e_n_t orientation. This method is useful for some interactive applications. ggggeeeettttNNNNuuuummmmVVVViiiieeeewwwwssss(((()))) int ilDisplayGetNumViews(ilDisplay *obj) Returns the number of ilViews in the view stack. The background view can not be accessed and is not included in the count. ggggeeeettttPPPPiiiixxxxeeeellll(((()))) ilView* ilDisplayGetPixel(ilDisplay *obj, int x, int y, iflPixel* pix) Copies into _p_i_x the pixel value at coordinates (_x, _y), in ilDisplay coordinates. The pixel value is obtained from _v_i_e_w. If _v_i_e_w is NULL, then the view at _x,_y is found first. ggggeeeettttPPPPoooossss(((()))) PPPPaaaaggggeeee 11114444 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplayGetPos(ilDisplay *obj, int* x, int* y) Returns the current position of the ilDisplayImg within the display window. ilDisplay creates a ilDisplayImg (X or GL) to perform the actual rendering to the frame buffer. It is maintained at position 0, 0 within the display window. ggggeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((()))) float ilDisplayGetRoamLimit(ilDisplay *obj) Returns the roam limit previously set with iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(). The roam limit causes image movement to be limited in order to facilitate smooth roaming with iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx(). The roam limit is used to calculate the maximum roam rate in x and y for a given direction. ggggeeeettttRRRRooooaaaammmmRRRRaaaatttteeee(((()))) void ilDisplayGetRoamRate(ilDisplay *obj, float* x, float* y) Returns the horizontal and vertical roam rate in _x and _y. If a roam limit has been set with iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), then image movement may be clipped when using iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx(). The returned values give the number of pixels the image was moved in the x and y directions. The roam rate is updated each time iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg() or iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx() is called. ggggeeeettttSSSSiiiizzzzeeee(((()))) void ilDisplayGetSize(ilDisplay *obj, int* x, int* y) Returns the size of the ilDisplayImg into _x and _y. ggggeeeettttSSSSttttaaaattttuuuussss(((()))) ilStatus ilDisplayGetStatus(ilDisplay *obj) Returns the current status. See /_u_s_r/_i_n_c_l_u_d_e/_i_l/_i_l_E_r_r_o_r._h for a list of error codes. ggggeeeettttVVVViiiieeeewwww(((()))) ilView* ilDisplayGetViewImg(ilDisplay *obj, ilImage* img) ilView* ilDisplayGetViewIdx(ilDisplay *obj, int index) PPPPaaaaggggeeee 11115555 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) Returns a pointer to the ilView that corresponds to _i_d_x in the view stack, or the bottom-most ilView containing _i_m_g. If no ilView is found, NULL is returned. Note that the back view can not be accessed. ggggeeeettttVVVViiiieeeewwwwIIIInnnnddddeeeexxxx(((()))) int ilDisplayGetViewIndexImg(ilDisplay *obj, ilImage* img) int ilDisplayGetViewIndex(ilDisplay *obj, ilView* view) Returns the index into the display's ilView corresponding to _v_i_e_w or, the index of the bottom-most ilView containing _i_m_g. If _v_i_e_w or _i_m_g is not in the list, ilNoListIndex is returned. ggggeeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((()))) void ilDisplayGetVisibleArea(ilDisplay *obj, int* x, int* y, int* nx, int* ny) Returns the current visible area. If the area is valid, then painting is limited to this area. This feature is useful for scrolled windows. See iiiillllDDDDiiiissssppppllllaaaayyyySSSSeeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa() for more information. ggggeeeettttWWWWiiiinnnnddddoooowwww(((()))) Window ilDisplayGetWindow(ilDisplay *obj) Returns the X Window currently being used. ggggeeeettttXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg(((()))) ilXWindowImg* ilDisplayGetXWindowImg(ilDisplay *obj) This method returns the ilXWindowImg created by this object. It is used for all rendering operations. iiiissssAAAAuuuuttttooooAAAAbbbboooorrrrttttEEEEnnnnaaaabbbblllleeeedddd(((()))) int ilDisplayIsAutoAbortEnabled(ilDisplay *obj) Returns TRUE if auto-abort is enabled, FALSE otherwise. See eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt(). iiiissssCCCCaaaallllllllbbbbaaaacccckkkkEEEEnnnnaaaabbbblllleeeedddd(((()))) PPPPaaaaggggeeee 11116666 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) int ilDisplayIsCallbackEnabled(ilDisplay *obj) Returns _T_R_U_E if the post-render callback is enabled. Otherwise it rerutns _F_A_L_S_E. See sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk() and eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk(). iiiissssDDDDeeeeffffeeeerrrr(((()))) int ilDisplayIsDefer(ilDisplay *obj, ilView* view) Returns the state of the defer flag for the specified view. If _v_i_e_w is NULL, the state of the defer flag on ilDisplay is returned. Returns TRUE if painting is deferred, FALSE otherwise. iiiissssDDDDoooouuuubbbblllleeeeBBBBuuuuffffffffeeeerrrr(((()))) int ilDisplayIsDoubleBuffer(ilDisplay *obj) Returns TRUE if double buffer mode is set, FALSE otherwise. iiiissssFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwwwEEEEnnnnaaaabbbblllleeeedddd(((()))) int ilDisplayIsFrontRedrawEnabled(ilDisplay *obj) This member function returns _T_R_U_E if front redraw is enabled, otherwise it returns _F_A_L_S_E. See also iiiillllDDDDiiiissssppppllllaaaayyyyEEEEnnnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww(). iiiissssNNNNoooopppp(((()))) int ilDisplayIsNop(ilDisplay *obj, ilView* view) Returns TRUE if the nop flag is set on the specified view, FALSE otherwise. If view is NULL, then the view on the top of the stack is tested. iiiissssQQQQuuuueeeeuuuueeeeiiiinnnnggggEEEEnnnnaaaabbbblllleeeedddd(((()))) int ilDisplayIsQueueingEnabled(ilDisplay *obj) Returns TRUE if queued rendering is enabled, FALSE otherwise. See eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg(). iiiissssRRRRggggbbbb(((()))) PPPPaaaaggggeeee 11117777 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) int ilDisplayIsRgb(ilDisplay *obj) Returns the GL color mode: TRUE for RGBmode, FALSE for colormap. iiiissssSSSSeeeelllleeeecccctttteeeedddd(((()))) int ilDisplayIsSelected(ilDisplay *obj, ilView* view) Returns TRUE if the specified view is selected, FALSE otherwise. When an ilView is selected, its nop flag is FALSE and its borders are enabled. iiiissssSSSStttteeeerrrreeeeoooo(((()))) int ilDisplayIsStereo(ilDisplay *obj) Returns TRUE if stereo viewing mode is available, FALSE otherwise. ilDisplay supports both monoscopic and stereoscopic views simultaneously within the same GL window. Stereo is only supported on InfiniteReality, RealityEngine and Impact graphics systems. mmmmaaaappppTTTTiiiilllleeee(((()))) void ilDisplayMapTileFloat(ilDisplay *obj, iflOrientation fromOrientation, iflTile2Dfloat* tile, iflOrientation toOrientation(0)) void ilDisplayMapTile(ilDisplay *obj, iflOrientation fromOrientation, iflTile2Dint* tile, iflOrientation toOrientation(0)) Maps the specified _t_i_l_e from the _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to the _t_o_O_r_i_e_n_t_a_t_i_o_n relative to the ilXWindowImg used by ilDisplay. By default, the orientation of ilDisplay (upper-left) is used for _t_o_O_r_i_e_n_t_a_t_i_o_n. mmmmaaaappppXXXXYYYY(((()))) void ilDisplayMapXYFloat(ilDisplay *obj, iflOrientation fromOrientation, float* x, float* y, iflOrientation toOrientation(0)) void ilDisplayMapXY(ilDisplay *obj, iflOrientation fromOrientation, int* x, int* y, iflOrientation toOrientation(0)) Maps _i_x and _i_y from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _t_o_O_r_i_e_n_t_a_t_i_o_n and returns the result in _o_x and _o_y. By default, the orientation of ilDisplay (upper-left) is used for _t_o_O_r_i_e_n_t_a_t_i_o_n. PPPPaaaaggggeeee 11118888 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) mmmmoooovvvveeeeIIIImmmmgggg(((()))) void ilDisplayMoveImg(ilDisplay *obj, float x, float y, ilView* view, int mode) void ilDisplayMoveImgIdx(ilDisplay *obj, float x, float y, ilView* view, int idx, int mode) These functions move the image within the specified _v_i_e_w. If NULL is passed as _v_i_e_w, then the images are moved in all views in the stack (except those with nop flag set). The image is moved as specified by _x and _y. The _m_o_d_e controls how the function operates. If ilClip is passed in mode, the image position is clipped to prevent moving beyond the edge of the image. However, by default, the image can be moved beyond its edge, exposing the image's fill value. The view is painted after the image has been moved, unless ilDefer is passed in mode. The mode also controls how the _x and _y parameters are interpreted. If ilDelVal is passed in _m_o_d_e, x and y specify the change (delta) in the image position. If ilAbsVal is specified, x and y specify the new position of the image. Note that the image position corresponds to the upper-left corner of the view, rather than the origin of the image. If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative to a starting xy coordinate maintained within ilDisplay. Typically, ilRelVal is used for interactive applications that use the mouse to control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be called to set the starting xy location. Then the difference between the starting xy location and the specified xy location is used to adjust the image position. The starting xy location is then updated. Specifying ilOldRel has the same effect as ilRelVal except that the starting xy location is not updated. The portion of the image being displayed resides in the cache of the input image. So as the image is moved within the view, old pages are discarded and new pages are brought into the cache. Note that if a roam limit has been set with sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), that image movement may be clipped. See setRoamLimit() for more information. For those views displaying multiple images (i.e., iiiillllSSSStttteeeerrrreeeeooooVVVViiiieeeewwww), the function allows independent movement of each image within the view. For stereo views, the valid values for _i_d_x are ilViewImgPairLeft and ilViewImgPairRight. mmmmoooovvvveeeeVVVViiiieeeewwww(((()))) PPPPaaaaggggeeee 11119999 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplayMoveView(ilDisplay *obj, int x, int y, ilView* view, int mode) This function moves the specified view within the display. If NULL is passed, then the image is moved in all views in the stack (except those with nop flag set). The image is moved as specified by _x and _y. The _m_o_d_e controls how the function operates. If ilClip is passed in mode, the view position is clipped to prevent moving beyond the edge of the display. However, by default, the view can be moved beyond the edge of the display. The view is painted after the view has been moved, unless ilDefer is passed in mode. The mode also controls how the _x and _y parameters are interpreted. If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in the view position. If ilAbsVal is specified, x and y specify the new position of the view. Note that the view position corresponds to the upper-left corner of the view relative to the upper-left corner of the display. If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative to a starting xy coordinate maintained within ilDisplay. Typically, ilRelVal is used for interactive applications that use the mouse to control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be called to set the starting _x_y location. Then the difference between the starting _x_y location and the specified _x_y location is used to adjust the view position. The starting _x_y location is then updated. Specifying ilOldRel has the same effect as ilRelVal except that the starting _x_y location is not updated. ppppaaaaiiiinnnntttt(((()))) void ilDisplayPaint(ilDisplay *obj, ilView* view, int mode) void ilDisplayPaintArea(ilDisplay *obj, int x, int y, int nx, int ny, iflOrientation orientation, ilView* view, int mode) This function paints the specified view if it needs to be painted. If _N_U_L_L is passed, then all views are painted if needed (except those with nop flag set). If an area is specified with origin _x, _y and size _n_x, _n_y then only the specified area is painted. The area parameters are interpreted based on the _o_r_i_e_n_t_a_t_i_o_n specified. If iiiillllPPPPaaaaiiiinnnnttttEEEExxxxppppoooosssseeee is passed in _m_o_d_e, the view is forced to be painted. If iiiillllDDDDeeeeffffeeeerrrr is passed in _m_o_d_e, or if the view is deferred (see sssseeeettttDDDDeeeeffffeeeerrrr()), then the view is not be painted. The view position, size, and image position are unaffected. ppppoooopppp(((()))) PPPPaaaaggggeeee 22220000 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplayPop(ilDisplay *obj, ilView* view, int count) Pops _v_i_e_w up _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the view is popped to the top of the stack. If _v_i_e_w is NULL, the bottom view is popped. ppppuuuusssshhhh(((()))) void ilDisplayPush(ilDisplay *obj, ilView* view, int count) Pushes _v_i_e_w down _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the view is pushed to the bottom of the stack. If _v_i_e_w is NULL, the top view is pushed. qqqqPPPPaaaaiiiinnnntttt(((()))) void ilDisplayQPaint(ilDisplay *obj, ilMpNode* parent, ilView* view, int mode, ilMpManager** pMgr) void ilDisplayQPaintArea(ilDisplay *obj, ilMpNode* parent, int x, int y, int nx, int ny, iflOrientation orientation, ilView* view, int mode, ilMpManager** pMgr) This function is identical to iiiillllDDDDiiiissssppppllllaaaayyyyPPPPaaaaiiiinnnntttt() except that the paint operation is queued and the function returns immediately. This allows the application thread to return to processing events and thus provide a responsive UI. See iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr and iiiillllMMMMppppNNNNooooddddeeee for more information. If an iiiillllMMMMppppNNNNooooddddeeee is passed as _p_a_r_e_n_t, the paint requests are queued on the parent node. If _p_M_g_r is specified, the iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr created to queue the paint requests is returned. This allows an application to setup a completion callback or wait for the queued requests to complete. rrrreeeeddddrrrraaaawwww(((()))) void ilDisplayRedraw(ilDisplay *obj, int mode) void ilDisplayRedrawArea(ilDisplay *obj, int x, int y, int nx, int ny, iflOrientation orientation, int mode) Resizes the display and back view to the size of the display window and repaints all views. If an area is specified with origin _x, _y and size _n_x, _n_y then only the specified area is painted. If iiiillllDDDDeeeeffffeeeerrrr is passed in _m_o_d_e, the display and back view are resized but not painted and all views are unaffected. This function is useful when an expose event occurs. PPPPaaaaggggeeee 22221111 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) rrrreeeemmmmoooovvvveeeeVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((()))) ilStatus ilDisplayRemoveViewChangeCallback(ilDisplay *obj, ilCallback* cb) This method removes a view add/delete callback previously added with aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(). ssssaaaavvvveeee(((()))) ilStatus ilDisplaySave(ilDisplay *obj, ilImage* img, int x, int y, int mode) This function saves a region of the display area into the ilImage specified by _i_m_g. The region that is saved starts at the location specified by _x and _y and is the size of _i_m_g. By default, borders are not painted. However, if ilPaintBorder is passed in _m_o_d_e, then borders are painted on views with borders turned on. sssseeeelllleeeecccctttt(((()))) void ilDisplaySelect(ilDisplay *obj, ilView* view) Selects the specified view. If NULL is passed, then all views in the view stack are selected. When a view is selected, its nop flag is FALSE and its borders are enabled. sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((()))) void ilDisplaySetBackground(ilDisplay *obj, float red, float green, float blue) Sets the ilDisplay's background color to that specified by _r_e_d, _g_r_e_e_n and _b_l_u_e. The values are assumed to be normalized to the range 0.0 to 1.0. sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnnddddDDDDiiiirrrrttttyyyy(((()))) void ilDisplayBackgroundSetDirty(ilDisplay *obj) Indicates that the ilDisplay's background needs to be repainted for some external reason (e.g. graphics drawn on top that need to be updated). sssseeeettttBBBBoooorrrrddddeeeerrrrCCCCoooolllloooorrrr(((()))) PPPPaaaaggggeeee 22222222 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) void ilDisplaySetBorderColor(ilDisplay *obj, float red, float green, float blue) Sets the border color to _r_e_d, _g_r_e_e_n and _b_l_u_e on all views in the stack. The values are assumed to be normalized to the range 0.0 to 1.0. See also iiiillllVVVViiiieeeewwww. sssseeeettttBBBBoooorrrrddddeeeerrrrSSSSttttyyyylllleeee(((()))) void ilDisplaySetBorderStyle(ilDisplay *obj, int style) Sets the border style on all views, to that specified by _s_t_y_l_e. By default, view borders are set to iiiillllVVVViiiieeeewwwwBBBBddddrrrrSSSSoooolllliiiiddddLLLLiiiinnnneeeessss. See iiiillllVVVViiiieeeewwww for more information. sssseeeettttBBBBoooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh(((()))) void ilDisplaySetBorderWidth(ilDisplay *obj, int width) Sets the border width to _w_i_d_t_h on all views in the stack. sssseeeettttBBBBoooorrrrddddeeeerrrrssss(((()))) void ilDisplaySetBorders(ilDisplay *obj, int enable, int mode) Sets the border flag on all views in the stack to the specified value. If _f_l_a_g is TRUE, then borders are turned on, otherwise borders are turned off. Borders will be painted or erased unless defer mode has been set. sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((()))) void ilDisplaySetCallback(ilDisplay *obj, ilCallback* prepare, ilCallback* render, ilCallback* finish) Sets the post-render callback which is associated with the back view. The callback is called after all views have been rendered. There are actually three callbacks: _p_r_e_p_a_r_e, _r_e_n_d_e_r and _f_i_n_i_s_h. The prepare callback is called by one of the compute threads to perform any pre-rendering allocations or computations. Then the render callback is called by the IL's render thread to perform actual rendering into the display window. This callback must execute as efficiently as possible to achieve maximum performance. It is called by the IL's render thread to minimize context switching. Any state changes made by the callback must be restored prior to completion. Finally, the finish callback is called by one of the compute threads to perform any de-allocation or cleanup required. The prepare and PPPPaaaaggggeeee 22223333 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) finish callbacks may be set to NULL if not required. See iiiillllVVVViiiieeeewwww and iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk for more information. sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) void ilDisplaySetColormap(ilDisplay *obj, iflColormap* cmap) Sets the colormap to the ilLut specified by _c_m_a_p. The colormap is used by iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg depending on the render mode. Note that this will override the iiiillllDDDDeeeeffffaaaauuuullllttttCCCCmmmmaaaapppp mode passed to the constructor. sssseeeettttDDDDeeeeffffeeeerrrr(((()))) void ilDisplaySetDefer(ilDisplay *obj, int def, ilView* view) Sets the state of the defer flag on the specified view. If _v_i_e_w is NULL, then the defer flag on ilDisplay is set. If _d_e_f_e_r is TRUE, then painting does not occur or is deferred. When painting is deferred, changes to a view's position, size or image position are accumulated until the view can be painted. Note that ilDisplay can be deferred or each individual ilView can be deferred. sssseeeettttLLLLoooocccc(((()))) ilView* ilDisplaySetLoc(ilDisplay *obj, float ix, float iy, float x, float y, int mode) This function finds the view at xy and sets the location in the image specified by _i_x and _i_y to the location in the display specified by _x and _y. The image is moved as needed to relocate the specified point. If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the location is found in the input space of the image. If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the location is found in the output space of the image. For example, if an ilRotZoomIng is mapped to the view and ilLocIn is specified, _i_x and _i_y correspond to the location in the unrotated image. However, if ilLocOut is specified, _i_x and _i_y correspond to the location in the rotated image. The relocation can be accomplished by moving either the image or the view. If iiiillllLLLLooooccccVVVViiiieeeewwww is specified then the view is moved, alternatively if iiiillllLLLLooooccccIIIImmmmgggg is specified (default) then the image is moved. sssseeeettttMMMMaaaarrrrggggiiiinnnn(((()))) void ilDisplaySetMargin(ilDisplay *obj, int margin) PPPPaaaaggggeeee 22224444 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) Sets the default margin to the number of pixels specified in _m_a_r_g_i_n. This margin is used by ffffiiiinnnnddddEEEEddddggggeeee() if no margin is specified. sssseeeettttMMMMooooddddeeee(((()))) void ilDisplaySetMode(ilDisplay *obj, int mode) Sets the display mode as specified by _m_o_d_e. This display mode is added to the mode used to create new views with aaaaddddddddVVVViiiieeeewwww(). For example, if ilDefer is set in the display mode, then ilDefer will be added to the mode passed to addView(). sssseeeettttMMMMoooouuuusssseeee(((()))) void ilDisplaySetMouse(ilDisplay *obj, int x, int y, int mode) Sets the starting mouse location to the coordinate _x, _y. Note that x and y are interpreted in the current event space, which is determined by the type of window (X or GL) being used. This method is typically used to preset mouse values to initialize an interactive display operation loop such as moving a view. sssseeeettttNNNNoooopppp(((()))) void ilDisplaySetNop(ilDisplay *obj, int noOp, ilView* view) Sets NOP state for the specified view. If view is NULL, then all views are set. If set to TRUE, display operations are disabled on this view until the flag is set to FALSE. sssseeeettttPPPPiiiixxxxeeeellll(((()))) ilView* ilDisplaySetPixel(ilDisplay *obj, int x, int y, iflPixel* pix) Sets the pixel located _x and _y to the value specified in _p_i_x. First the view at _x,_y is found using ffffiiiinnnnddddVVVViiiieeeewwww() and sssseeeettttPPPPiiiixxxxeeeellll() is called on that ilView. See the ilView man page for more information. sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((()))) void ilDisplaySetRoamLimit(ilDisplay *obj, float maxRoamDel.0) Sets the maximum number of pixels an image can move. The roam limit causes image movement to be limited in order to facilitate smooth roaming with iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmgggg(). The roam limit is used to calculate the maximum roam rate in x and y for a given direction. If PPPPaaaaggggeeee 22225555 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) _m_a_x_R_o_a_m_D_e_l is set to 0.0 or negative, the roam limit is disabled. sssseeeettttSSSSttttaaaattttuuuussss(((()))) void ilDisplaySetStatus(ilDisplay *obj, ilStatus stat) Sets the status of ilDisplay to the ilStatus specified in _s_t_a_t. See also ggggeeeettttSSSSttttaaaattttuuuussss(). sssseeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((()))) void ilDisplaySetVisibleArea(ilDisplay *obj, int x, int y, int nx, int ny) Sets the visible area within the display window in order to optimally support scrolled windows. The origin of the area is specified as _x, _y and the size of the area is specified by _n_x, _n_y. This causes painting to be clipped to the visual area. If _0 is passed for all area parameters then this function is disabled. sssseeeettttWWWWiiiinnnnddddoooowwww(((()))) void ilDisplaySetWindow(ilDisplay *obj, Window win, int mode) Sets the display window to the X window specified in _w_i_n and reinitializes ilDisplay. The render mode and display mode are specified as in the constructor. This function is used to change the configuration of the display window used by ilDisplay. sssspppplllliiiitttt(((()))) void ilDisplaySplit(ilDisplay *obj, int mode) This function repositions and resizes all views in the view stack so that all views are visible. The _m_o_d_e specifies how the views are arranged. Starting at the bottom of the view stack, views are placed starting at the upper left corner of the display. The various split modes are listed below: _i_l_A_b_s_S_p_l_i_t All images are aligned based on the align mode specified (ilBottomLeft by default). _i_l_R_e_l_S_p_l_i_t All images are positioned relative to the view position. _i_l_R_o_w_S_p_l_i_t The views are arranged in rows. PPPPaaaaggggeeee 22226666 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) _i_l_C_o_l_S_p_l_i_t The views are arranged in columns. _i_l_P_a_c_k_S_p_l_i_t Views sizes are clipped to the size of the image and packed together. The relative split mode causes images to be positioned so that the image continues from one view to the next. Any combination of these split modes can be used. For example, if ilRowSplit | ilColSplit is specified in _m_o_d_e, views are arranged into an equal number of rows and columns. sssswwwwaaaapppp(((()))) void ilDisplaySwap(ilDisplay *obj, ilView* view1, ilView* view2) Swaps the positions in the view stack of the two views specified. ssssyyyynnnnccccPPPPaaaaiiiinnnntttt(((()))) void ilDisplaySyncPaint(ilDisplay *obj) This method will not return until all queued rendering requests are completed. See eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg(). uuuunnnnsssseeeelllleeeecccctttt(((()))) void ilDisplayUnselect(ilDisplay *obj, ilView* view) Unselects the specified view. If NULL is passed, then all views in the view stack are unselected (except those with nop flag set). When a view is unselected, its nop flag is TRUE and its borders are disabled. uuuuppppddddaaaatttteeee(((()))) void ilDisplayUpdate(ilDisplay *obj, int x, int y, int nx, int ny, float imgX, float imgY, ilView* view, int mode) This function allows the view position, view size and image position to be adjusted for the specified view. If no view is specified, then all views are updated. The view is moved as specified by _x and _y. The view size is adjusted as specified by _n_x and _n_y. The image is moved within the view as specified by _i_m_g_X and _i_m_g_Y. All three adjustments are clipped if ilClip is passed in _m_o_d_e. After all three adjustments are made the view is painted, unless ilDefer is passed in _m_o_d_e. PPPPaaaaggggeeee 22227777 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) If ilDelVal is passed in _m_o_d_e, all parameters specify the change (delta) in position and size. If ilAbsVal is specified, all parameters specify the absolute position or size. If ilRelVal is passed in _m_o_d_e, then all parameters are interpreted relative to a starting xy coordinate maintained within ilDisplay. ilRelVal is not recommended for use with this operator. See ilDisplayMoveView and ilDisplayMoveImg for more details. uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww(((()))) void ilDisplayUpdateWindow(ilDisplay *obj) This function is used to reinitialize the ilDisplay when the configuration of the display window has been changed. For example, if the GL window is changed from RGB mode to color index, uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww() must be called. wwwwiiiippppeeee(((()))) void ilDisplayWipe(ilDisplay *obj, int x, int y, ilView* view, int mode) This function moves one or more edges on the specified view. If NULL is passed, then all views are wiped (except those with nop flag set). The edge or edges to move are specified in _m_o_d_e. For example, if ilRightEdge is passed in mode, the right edge of the view moves as specified by _x and _y. In addition, if ilTopEdge | ilRightEdge (or ilTopRight) is specified, then the upper right corner is moved. Note that the value returned by ffffiiiinnnnddddEEEEddddggggeeee() can be used directly. In general, a wipe operation resizes the view. However, if ilAllEdge is passed in mode, then all edges of the view are moved and the view size is unchanged. This operation is referred to as an _i_n_s_e_t - the image is stationary and the view moves. This is the opposite of moving the image within the view. When comparing images, wiping is very useful. If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in the image position. If ilAbsVal is specified, _x and _y specify the new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and _y are interpreted relative to a starting _x_y coordinate maintained within ilDisplay. If ilClip is passed in _m_o_d_e, the the edge is not allowed to move beyond the edge of the image. However, by default the edge can be moved beyond the edge of the image, exposing the image's fill value. If ilDefer is passed in _m_o_d_e, then the view is not painted after the operation. PPPPaaaaggggeeee 22228888 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) wwwwiiiippppeeeeSSSSiiiizzzzeeee(((()))) void ilDisplayWipeSize(ilDisplay *obj, int x, int y, ilView* view, int mode) This function moves an edge or corner and the opposite edge or corner on the specified view. If NULL is passed, then all views in the view stack are affected (except those with nop flag set). The edge or corner passed in _m_o_d_e is moved as specified by _x and _y. In addition, the opposite edge or corner is moved in the opposite direction. This causes the view to grow or shrink by moving opposite edges or corners. For example, if the right edge is moved right by ten pixels, the left edge is also moved left by ten pixels. Note that the value returned by ffffiiiinnnnddddEEEEddddggggeeee(((()))) can be used directly. If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in the image position. If ilAbsVal is specified, _x and _y specify the new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and _y are interpreted relative to a starting _x_y coordinate maintained within ilDisplay. wwwwiiiippppeeeeSSSSpppplllliiiitttt(((()))) void ilDisplayWipeSplit(ilDisplay *obj, int x, int y, int mode) This function moves the edge on all views, found by calling ffffiiiinnnnddddEEEEddddggggeeee(((()))) on ilDisplay. All of these edges are moved as specified by _x and _y. For example, if two views are displayed side-by-side, the right edge of the left view and the left edge of the right view can be moved simultaneously. This is useful after a split operation. If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in the image position. If ilAbsVal is specified, _x and _y specify the new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and _y are interpreted relative to a starting _x_y coordinate maintained within ilDisplay. SSSSEEEEEEEE AAAALLLLSSSSOOOO ilXWindowImg, ilView, ilViewIter, <il/ilDisplayDefs.h> NNNNOOOOTTTTEEEESSSS Many display operators take a _m_o_d_e parameter which is a bit-wise inclusive OR of various flags defined in ilDisplayDefs.h. These flags are interpreted based on which operator is called. For example, iiiillllCCCCeeeennnntttteeeerrrr can be used to align a view or can be used to locate the center of a view. PPPPaaaaggggeeee 22229999 iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllDDDDiiiissssppppllllaaaayyyy((((3333)))) All views in the view stack are deleted when ilDisplay is deleted. ilViewIter can be used to iterate through the view stack. It is declared in _i_l_D_i_s_p_l_a_y._h PPPPaaaaggggeeee 33330000